Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Запрос на вывод последнего сообщения (Владислав)
Author Message
Владислав
Заглянувший



Joined: 29 Nov 2006
Posts: 1
Карма: 0
   поощрить/наказать


PostPosted: Wed Nov 29, 2006 1:14 pm (написано за 6 минут 42 секунды)
   Post subject: Запрос на вывод последнего сообщения
Reply with quote

Есть скрипт новостной ленты. Есть таблица в базе данных mySQL. В таблицу забиты поля : id_news(уникальный номер новости), title(заголовок новости), whois (содержит имя человека который добавил новость), news(тело новости) и поле created (ДОЛЖНО содержать время когда новость была добавлена). Вопрос заключается в следующем: каким должен быть запрос к базе данных mySQL при добавлении новости, чтобы в поле сreated не было 0000-00-00 00:00:00?
Вот скрипт обрабатывающий на данный момент форму с введёными полями title, whois && news.
Code (php): скопировать код в буфер обмена
<?php
        include ("../config.php");
        include ("foradmin.php");
?>
<?php
if (empty (www.php.net/empty)($_POST['message']) and empty (www.php.net/empty)($_POST['title']) and empty (www.php.net/empty)($_POST['whois']))
{
        echo (www.php.net/echo) ("<script language = 'javascript'>alert('Не все поля помеченные * заполнены');</script>");
        exit (www.php.net/exit)();
} else
$queryid = "SELECT max(id_news) FROM news";
$query_id = mysql_query (www.php.net/mysql_query)($queryid);
if($query_id){
        while ( $help = mysql_fetch_array (www.php.net/mysql_fetch_array)($query_id))
        {
        //echo $help['0'];
    $chislo = $help['0'];
        $one = 1;
$id_news = $chislo + $one;
        }
}
/*$title = htmlspecialchars(stripslashes($_POST['title']));
$news = htmlspecialchars(stripslashes($_POST['message']));*/

$sqlnewsstr_replace (www.php.net/str_replace)("'","`",$_POST['message']);
$sqltitle = str_replace (www.php.net/str_replace)("'","`",$_POST['title']);
$sqlwhois = str_replace (www.php.net/str_replace)("'","`",$_POST['whois']);
$sqldate  = date (www.php.net/date)('Y-m-d H:i:s');
$query = "INSERT INTO news VALUES(
        '$id_news',
        '$sqltitle',
        '$sqlwhois',
        '$sqlnews'
        )"
;//В ЗАПРОСЕ ПЫТАЛСЯ ВСТАВИТЬ '$sqldate' Ничего не получалось
if(mysql_query (www.php.net/mysql_query)($query))
{
        echo (www.php.net/echo) ("<html><head><title>Новость добавлена!</title><meta http-equiv='refresh' content = '10; url=http://freeman/index.php/'></head><body bgcolor = '".$bgclr."' color='".$txtclr."'><font style = 'color:red;'>Новость ".$sqltitle." успешно добавлена.<br />Подождите, сейчас Вы будете перемещены на главную страницу.<br />Если Ваш браузер не поддерживает автоматическую переадресацию <br />или Вы всё ещё не были перемещены нажмите </font><a href = '../index.php'>ЗДЕСЬ</a></body>");
}
else
        echo (www.php.net/echo) ("<html><head><title>ОШИБКА</title></head><body bgcolor = '".$bgclr."' color='".$txtclr."'><font style = 'color:red;'>Новость ".$sqltitle." не добавлена.<br />Возможно это ошибка MySQL.</font><a href =# OnClick ='history.Back();'>Назад</a></body>");
?>
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Wed Nov 29, 2006 1:52 pm (спустя 37 минут; написано за 21 секунду)
   Post subject:
Reply with quote

Владислав
Code (SQL): скопировать код в буфер обмена
SELECT NOW()
кажется..
Back to top
View user's profile Send private message
Kupuyc
Участник форума



Joined: 31 Mar 2006
Posts: 146
Карма: 5
   поощрить/наказать


PostPosted: Thu Nov 30, 2006 3:08 pm (спустя 1 день 1 час 16 минут; написано за 2 минуты 8 секунд)
   Post subject:
Reply with quote

Можно также сделать поле времени создания новости как timestamp и не указывать значение этого столбца в INSERT, что приведет к его означиванию значением как то сделала бы функция NOW(). Однако при изменении любого иного столбца такое поле будет автоматом менять свое значение, если оно не указано в UPDATE.
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Thu Nov 30, 2006 3:40 pm (спустя 31 минуту; написано за 58 секунд)
   Post subject:
Reply with quote

Kupuyc
мне мускульный тип timestamp вообще не нравится. Последнее время я предпочитаю такие поля делать INT и работать с ними с помощью UNIX_TIMESTAMP()
Back to top
View user's profile Send private message
Kupuyc
Участник форума



Joined: 31 Mar 2006
Posts: 146
Карма: 5
   поощрить/наказать


PostPosted: Thu Nov 30, 2006 5:10 pm (спустя 1 час 29 минут; написано за 27 секунд)
   Post subject:
Reply with quote

offtopic: Maus, а каковы причины, если не секрет?
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Thu Nov 30, 2006 7:53 pm (спустя 2 часа 43 минуты; написано за 34 секунды)
   Post subject:
Reply with quote

Kupuyc
из-за того, что в версиях ниже 4.1 - он строковый
Back to top
View user's profile Send private message
Kupuyc
Участник форума



Joined: 31 Mar 2006
Posts: 146
Карма: 5
   поощрить/наказать


PostPosted: Sat Dec 02, 2006 2:24 am (спустя 1 день 6 часов 31 минуту; написано за 28 секунд)
   Post subject:
Reply with quote

Какой занятный нюанс, спасибо, не ведал.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML